package com.yang.stream;

public class StreamMain {

    public static void main(String[] args) {
        System.out.println("演示流式输出和非流式输出的区别");

        // 演示流式输出
        streamingOutput();

        System.out.println("\n-------------------\n");

        // 演示非流式输出
        nonStreamingOutput();
    }

    // 流式输出示例
    public static void streamingOutput() {
        System.out.println("流式输出示例：");
        try {
            for (int i = 1; i <= 5; i++) {
                System.out.println("正在处理数据块 " + i);
                // 模拟数据处理和实时输出
                Thread.sleep(1000);
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    // 非流式输出示例
    public static void nonStreamingOutput() {
        System.out.println("非流式输出示例：");
        try {
            StringBuilder result = new StringBuilder();

            // 模拟数据处理，但不输出
            for (int i = 1; i <= 5; i++) {
                result.append("处理了数据块 ").append(i).append("\n");
                Thread.sleep(1000);
            }

            // 所有数据处理完成后，一次性输出
            System.out.println("所有数据处理完成，一次性输出结果：");
            System.out.println(result);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

}
